|
Компонент OperationsCombinedFilesWithRAR предназначен для создания rar-архивов либо, что идентично по действиям, создания файлов "своего типа" (из названия видно, что в таком файле могут содержаться данные разных типов). В любом случае, получающийся файл - RAR-архив, и для работы компонента необходимо наличие WinRAR (компонет тестировался на версии WinRAR 3.00). Имеет свою специфику работы и непосредственно файлы не архивирует, а работает с потоками Stream, чтобы можно было помещать в такие файлы не только данные из других файлов, но и, например, текстовые данные из программы. Каждый блок данных заносит в файл-архив под определённым идентификатором, являющимся именем создаваемого и помещаемого в архив файла (в WinRAR такой файл можно открыть и посмотреть). Отсюда следует, что идентификатор данных не должен содержать недопустимые для имени файла символы.
Итак, методы.
doWriteData записывает данные DataWr (типа Stream) в файл FileName под идентификатором DataName со степенью сжатия ForceCompess, придавая получившемуся файлу FileName расширение Ext (это для создания "своего" типа файлов), и выдаёт на onEnd те же данные (DataWr).
doReadData читает данные из файла FileName.Ext данные с идентификатором DataName, выдавая их на onEnd.
doDeleteData удаляет из файла FileName.Ext данные с идентификатором DataName, вызывая событие onEnd, но не выдавая на него никаких данных (если в файле при этом оказываются удалены все данные, ранее занесённые в него, такой файл автоматически удаляется).
FileName имя файла, с которым будет работать компонент (расширение указывать здесь не нужно!).
Ext а вот здесь надо указать расширение, какое будет иметь окончательный файл, с которым и работает компонент (например, можно указать bin, dat или даже мойтип - таким образом получается файл "своего" типа, хотя, конечно, тип будет всё равно rar, но расширение действительно своё. Если нужен всё-таки rar-файл, то и расширение нужно указать rar.)
DataWr это именно те данные, которые будут записаны по doWriteData. Тип данных - Stream, например, из компонета MemoryStream.
DataName это идентификатор, под которым записываются данные DataWr и по которому они потом могут быть извлечены или удалены. Идентификатор должен содержать только символы, допустимые для имён файлов (если посмотреть pas, то можно понять, почему), то есть, нельзя, например, указать идентификатор 11"абв, т. к. кавычки недопустимы для имени файла, но можно указать 11''абв, т. к. тут находятся два апострофа, которые допустимы для имён файлов.
ForceCompess чисто rar'овская функция - степень сжатия от 0 до 5 включительно. Но осторожно с большими объмами данных! Например, даже 40 Мб при степени сжатия больше 3 будут сжиматься немалое время. Лучше использовать 0 или 1, хотя, если добавляемыми данными являются тексты, то можно и 5 поставить.
Password пароль, устанавливаемый на данные, причём данные под каждым идентификатором могут иметь разные пароли.
PathWinRAR это путь к программе WinRAR.exe, т. к. компонент сам не архивирует, а только передаёт параметры архивации командной строкой WinRAR'у. По умолчанию стоит C:\Program Files\WinRAR\WinRAR.exe.
onEnd происходит после выполнения любого метода и выдаёт то, что определяется описанием метода.
А теперь - свойства.
FileName имя файла, с которым будет работать компонент (расширение указывать здесь не нужно!).
Ext а вот здесь надо указать расширение, какое будет иметь окончательный файл, с которым и работает компонент (например, можно указать bin, dat или даже мойтип - таким образом получается файл "своего" типа, хотя, конечно, тип будет всё равно rar, но расширение действительно своё. Если нужен всё-таки rar-файл, то и расширение нужно указать rar.)
ForceCompess чисто rar'овская функция - степень сжатия от 0 до 5 включительно. Но осторожно с большими объмами данных! Например, даже 40 Мб при степени сжатия больше 3 будут сжиматься немалое время. Лучше использовать 0 или 1, хотя, если добавдяемыми данными являются тексты, то можно и 5 поставить.
Password пароль, устанавливаемый на данные, причём данные под каждым идентификатором могут иметь разные пароли.
StringChar строка символов (не более 255-и!), которая будет присутствовать в самом начале файла FileName, "подтверждая", что это файл "своего" типа. Но такой файл всё равно можно открыть в WinRAR, кроме того, эта строка ничего не даёт, помимо "вида" при открытии такого файла в Блокноте, то есть строка не означает, что открываться "свои" файлы будут в создавшей их программе - необходимо править Реестр. Функция имеет декоративное назначение.
PathWinRAR это путь к программе WinRAR.exe, т. к. компонент сам не архивирует, а только передаёт параметры архивации командной строкой WinRAR'у. По умолчанию стоит C:\Program Files\WinRAR\WinRAR.exe.
Компонент удобен тем, что работает не с файлами (точнее, сам пользователь не должен указывать файлы) данных, а с самими данными и их же выдаёт в поток. Тогда, если на форме есть картинка, её можно не сохранять в файл, а просто преобразовать в данные (BitmapStream) и сохранить в файле-архиве. Также, если есть текст в поле ввода, его можно тоже преобразовать в Stream, не сохраняя в файле, и сохранить в архиве. То есть, одно из применений компонента - замена INI-файлов, когда те не подходят из-за слишком большого объёма данных, требующегося сохранить (да и картинку в INI не сохранить - только если в 16-ричном формате, но тогда данных будет в 2 раза больше, и ещё меньше шансов, что они поместятся в INI).
|